<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
<!-- testing.qdoc -->
  <title>Testing and Debugging | Qt 5.14</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td ><a href="index.html">Qt 5.14</a></td><td >Testing and Debugging</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right">Qt 5.14.2 Reference Documentation</td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
<div class="sidebar">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level1"><a href="#unit-testing">Unit Testing</a></li>
<li class="level2"><a href="#autotests">Autotests</a></li>
<li class="level1"><a href="#testing-with-qt-creator">Testing with Qt Creator</a></li>
<li class="level1"><a href="#debugging-techniques">Debugging Techniques</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">Testing and Debugging</h1>
<span class="subtitle"></span>
<!-- $$$testing-and-debugging.html-description -->
<div class="descr"> <a name="details"></a>
<p>Qt provides various functionality to help you develop high quality code. There are features that assist in debugging to track down bugs, and testing facilities that help to keep the bugs out.</p>
<a name="unit-testing"></a>
<h2 id="unit-testing">Unit Testing</h2>
<p>Qt facilitates the creation of unit tests to test interfaces such as classes, functions, or whole libraries.</p>
<ul>
<li><a href="../qttestlib/qtest-overview.html">Qt Test</a> (also known as <i>testlib</i>) - a framework for unit tests of C++ code</li>
<li><a href="../qtqmltest/qtquicktest-index.html">Qt Quick Test</a> - a framework for unit tests of QML code</li>
</ul>
<a name="autotests"></a>
<h3 id="autotests">Autotests</h3>
<p>Qt itself has a significant number of unit tests written with the Qt Test and Qt Quick Test frameworks (<i>autotests</i>). These autotests are available for study in the <code>tests/auto</code> directories of the source code of each Qt module. The autotests are an important part of the continuous quality assurance in the development of Qt.</p>
<a name="testing-with-qt-creator"></a>
<h2 id="testing-with-qt-creator">Testing with Qt Creator</h2>
<p>Qt Creator's full debugging workflow supports debugging both C++ and QML code as well as the ability to profile code.</p>
<p>For more information, consult the <a href="http://doc.qt.io/qtcreator/index.html">Qt Creator Manual</a>:</p>
<ul>
<li><a href="http://doc.qt.io/qtcreator/creator-debugging.html">Debugging</a></li>
<li><a href="http://doc.qt.io/qtcreator/creator-analyze-mode.html">Analyzing Code</a></li>
</ul>
<a name="debugging-techniques"></a>
<h2 id="debugging-techniques">Debugging Techniques</h2>
<p>These pages contain suggestions for debugging under various circumstances:</p>
<ul>
<li><a href="debug.html">Debugging Techniques</a> - for C++ code</li>
<li><a href="qtquick-debugging.html">Debugging QML Applications</a></li>
<li><a href="deployment-plugins.html#debugging-plugins">Debugging Plugins</a></li>
</ul>
</div>
<!-- @@@testing-and-debugging.html -->
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2020 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br/>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br/>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>
